package com.example.appmanager.services;

import com.example.appmanager.entity.AppCustomer;
import com.example.appmanager.entity.AppEntity;
import com.example.appmanager.entity.AppTableEntity;
import com.example.appmanager.entity.DetailsEntity;
import com.example.appmanager.entity.ReaponseMsg;
import com.example.appmanager.entity.ReviewTableEntity;
import com.example.appmanager.entity.UserReview;
import com.example.appmanager.entity.UserTableEntity;
import com.example.appmanager.entity.userLogin;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Response;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

public interface AllresposeService {
    /* http://192.168.0.105:8080/right/user/getPasswd?name=1 */
    @POST("right/user/queryAllBYCid")
    Call<UserTableEntity> getUserPwd(@Query("account") String name);
    /*新用户进行注册*/
    /*@Multipart
    @POST("users/login")
    Observable<ResponseBody> phoneLogin(@PartMap Map<String, RequestBody> requestBodyMap);*/
   // @Multipart
    //Call<ReaponseMsg> createUser(@Body UserTableEntity user);
    @POST("right/user/save")
    Call<ReaponseMsg> createUser(@Query("user") String user);

    /*查看已经上线的APP*/
    @POST("right/app/query")
    Call<AppEntity> getApp(@Query("idcard") int i);

    /*querById  根据APP的id查询APP*/
    Call<AppEntity> getOneApp(@Query("id") int i);

    /*
    用户修改信息
    updateByName*/
    @POST("right/user/updateByName")
    Call<ReaponseMsg> updateUser(@Query("user") String user);


    /*下载APPAPP*/
    @Streaming
    @GET
    Call downloadApp(@Url String fileUrl);

    /*下载APPAPP*/
    @GET("/app/{fileId}")
    @Headers({"Content-Type: apk/ipa"})
    Response getFile(@Path("fileId") String fileId);

    @Streaming
    @GET
    Call<ResponseBody> download(@Url String fileUrl);

    ///queryType
    /*根据用户的分类查看已经上线的APP*/
    @POST("right/app/queryType")
    Call<AppEntity> queryAppByType(@Query("type") String type);

    ///
    /*查看APP的详情页面 */
    @POST("right/details/getDetailsInfo")
    Call<DetailsEntity> getAllInfo(@Query("id") String id);//app的id

//判断APP是否已经有用户的评论
    @POST("right/review/queryByid")
    Call<ReviewTableEntity> getApp(@Query("aid") String aid);//app的id
    //提交用户评论信息


    //查看开发商和APP的信息（取交集）
    @POST("right/appCustomer/queryAllinfo")
    Call<AppCustomer> getAppCustomer(@Query("aid") String aid);//app的id

    //查看用户和评论信息（取交集）
    @POST("right/userReview/getAllReview")
    Call<UserReview> getUserReview(@Query("aid") String aid);//app的id
}
